package org.meteorshower.employee_depart.controller;

import com.baomidou.mybatisplus.extension.service.IService;
import org.meteorshower.cms_common.controller.BaseController;
import org.meteorshower.cms_common.result.ResponseObj;
import org.meteorshower.employee_depart.entity.EmpRecord;
import org.meteorshower.employee_depart.service.EmpRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.stream.Stream;


/**
 * 员工记录类控制层
 * @author Meteorshower
 * @version 1.0
 * @since 2025-06-08
 * @see org.meteorshower.cms_common.controller.BaseController 继承自BaseController
 * @apiNote 默认CRUD已实现，更多额外功能需要额外添加
 * */
@RequestMapping("api/employee-record")
@RestController
@ResponseBody
public class EmpRecordController extends BaseController<EmpRecord> {

    private final EmpRecordService empRecordService;

    @Autowired
    public EmpRecordController(EmpRecordService empRecordService) {
        this.empRecordService = empRecordService;
    }

    @Override
    public IService<EmpRecord> getService() {
        return empRecordService;
    }
//    /*
//     * 显式声明调用EmpRecordService中的方法，对BaseController的方法进行重写
//     * */
//    /**
//     * 员工记录模块控制层重写方法
//     * @param id 员工ID
//     * @return 员工信息
//     * */
//    @GetMapping("/{id}")
//    @Override
//    public ResponseObj<EmpRecord> getById(@PathVariable String id) {
//        return ResponseObj.ok(empRecordService.getById(id));
//    }
//    /**
//     * 员工记录模块控制层重写方法
//     * @return 员工信息集合
//     * */
//    @GetMapping("/all")
//    @Override
//    public ResponseObj<List<EmpRecord>> getAll() {
//        return ResponseObj.ok(empRecordService.list());
//    }
//
//    /**
//     * 员工记录模块控制层重写方法
//     * @param object 员工信息
//     * @return 插入结果
//     * */
//    @PostMapping
//    @Override
//    public ResponseObj<Integer> insert(@RequestBody EmpRecord object) {
//        return ResponseObj.ok(empRecordService.save(object) ? 1 : 0);
//    }
//
//    /**
//     * 员工记录模块控制层重写方法
//     * @param objects 员工信息
//     * @return 批量插入结果
//     * */
//    @PostMapping("/multi")
//    @Override
//    public ResponseObj<Integer> batchInsert(@RequestBody List<EmpRecord> objects) {
//        return ResponseObj.ok(empRecordService.saveBatch(objects) ? 1 : 0);
//    }
//
//    /**
//     * 员工记录模块控制层重写方法
//     * @param object 员工信息
//     * @return 更新结果
//     * */
//    @PutMapping
//    @Override
//    public ResponseObj<Integer> update(@RequestBody EmpRecord object) {
//        return ResponseObj.ok(empRecordService.update(object) ? 1 : 0);
//    }
//
//    /**
//     * 员工记录模块控制层重写方法
//     * @param objects 员工信息
//     * @return 批量更新结果
//     * */
//    @PutMapping("/multi")
//    @Override
//    public ResponseObj<Integer> BatchUpdate(List<EmpRecord> objects) {
//        return ResponseObj.ok(empRecordService.updateBatch(objects) ? 1 : 0);
//    }
//
//    /**
//     * 员工记录模块控制层重写方法
//     * @param id 员工id
//     * @return 删除结果
//     * */
//    @DeleteMapping("/{id}")
//    @Override
//    public ResponseObj<Integer> delete(@PathVariable("id") String id) {
//        return ResponseObj.ok(empRecordService.removeById(id) ? 1 : 0);
//    }
//
//    /**
//     * 员工记录模块控制层重写方法
//     * @param ids 员工id
//     * @return 批量删除结果
//     * */
//    @DeleteMapping("/multi/{ids}")
//    @Override
//    public ResponseObj<Integer> BatchDelete(@PathVariable("ids") String ids) {
//        return ResponseObj.ok(empRecordService.removeBatch(Stream.of(ids.split(",")).toList())? 1 : 0);
//    }
}
